<?php 
class venda_integranteModel extends Model{
    public $tabela = "venda_integrante";
    public $pkey   = array('cod_usuario','venda_equipe_cod');
    public $dados  = array(
        
        'venda_equipe_cod' => array(
	    'name'     => 'Equipe',
	    'type'     => 'int',
	    'size'     => '11',
	    'pkey'    => true,
	    'grid'    => true,
	    'display' => true,
	    'especial' => 'session',
	    'session'  => 'venda/equipe',
	    'fkey' => array(
	        'model' => 'venda/equipe',
	        'cardinalidade' => '1n',
	        'keys' => array('venda_equipe_cod', 'venda_equipe_nome'),
	    ),
        ),
        
         'cod_usuario' => array(
	    'name'     => 'Usuário',
	    'type'     => 'int',
	    'size'     => '11',
	    'pkey'    => true,
	    'grid'    => true,
	    'display' => true,
	    'fkey' => array(
                'filther' => array(),
	        'model' => 'usuario/login',
	        'cardinalidade' => '1n',
	        'keys' => array('cod_usuario', 'user_name', 'user_cargo'),
	    ),
        ),
         
         'venda_integrante_criadoem' => array(
	    'name'     => 'Criadoem',
	    'type'     => 'timestamp',
            'private' => true,
	    'grid'    => true,
	    'display' => true,
        ),
        'venda_integrante_proxev' => array(
	    'name'     => 'Próximo evento Liberado',
	    'type'     => 'enum',
	    'default'  => 'n',
	    'options' => array(
	    	's'  => 'Sim',
	    	'n'  => 'Não',
	    ),
            'display' => true,
            'especial' => 'hide',
	    'notnull' => true,
	    'grid'    => true,
        ),
        'venda_integrante_meta' => array(
	    'name'    => 'Meta',
	    'type'    => 'int',
	    'size'    => '4',
            'default' => 0,
            'notnull' => true,
	    'grid'    => true,
	    'display' => true,
        ),
	'button'     => array('button' => 'Gravar Integrante'),
    );
    
    public function bloquearProxEv($cod){
        $post['venda_integrante_proxev'] = 'n';
        $bool = parent::editar($cod, $post);
        if($bool)$this->setSuccessMessage ('O próximo evento da equipe foi bloquado para o vendedor');
        else $this->setErrorMessage ('Erro VI-BPEV1. Não foi possível bloquear o próximo evento da equipe para o vendedor. ');
        return $bool;
    }
    
    public function liberarProxEv($cod){
        $post['venda_integrante_proxev'] = 's';
        $bool = parent::editar($cod, $post);
        if($bool)$this->setSuccessMessage ('O próximo evento da equipe foi liberado para o vendedor');
        else $this->setErrorMessage ('Erro VI-LPEV1. Não foi possível liberar o próximo evento da equipe para o vendedor. ');
        return $bool;
    }
    
    public function proxEvLiberado($cod_usuario = ""){
        $cod_usuario = ($cod_usuario == "")?usuario_loginModel::CodUsuario():$cod_usuario;
        $total = $this->getCount("cod_usuario = '$cod_usuario' AND venda_integrante_proxev = 's'");
        return ($total != 0);
    }
    
    public function inserir($dados) {
        $this->LoadModel('venda/equipe', 'eq');
        if($this->eq->UserHasEquipe($dados['cod_usuario'])){
            $this->setErrorMessage("Erro VI-I1. Cada vendedor só pode participar de uma equipe por vez! Remova este vendedor da equipe
                da qual ele participa para adicioná-lo a esta equipe");
            return false;
        }
        if(!parent::inserir($dados)) return false;
        $this->LoadResource('email', 'mail');
        
        $this->LoadModel('usuario/login', 'uobj');
        $email = $this->uobj->selecionar(array('email'), "cod_usuario='".$dados['cod_usuario']."'");
        if(empty($email)) return true;
        else $email = array_shift ($email);
        
        $this->LoadResource('html', 'html');
        $link = $this->html->getLink('venda/equipe/show/'.$dados['venda_equipe_cod']);
        $email = $email['email'];
        $this->mail->sendMail(
                SITE_NOME .' - Equipe de Vendas', 
                "
                    <p>Você foi incluído em uma equipe de vendas. Para acessar <a href='$link'> clique aqui </a>.</p>
                    <hr/><p>Caso não consiga visualizar o link acima: $link</p>
                ", 
                SITE_EMAIL,  
                $email, 
                SITE_NOME
        );
        return true;
    }
    
    public function getUsersOfEquipe($cod_equipe){
        $this->LoadModel('usuario/login', 'uobj');
        $this->db->Join($this->tabela, $this->uobj->getTable());
        $var = $this->selecionar(array('cod_usuario', 'email'), "venda_equipe_cod = '$cod_equipe'");
//        echo $this->db->getSentenca();
        return $var;
    }
    
    public function getNumUsersOfEquipe($cod_equipe){
        $this->LoadModel('usuario/login', 'uobj');
        $this->db->Join($this->tabela, $this->uobj->getTable());
        $var = $this->getCount("venda_equipe_cod = '$cod_equipe'");
//        echo $this->db->getSentenca();
        return $var;
    }
    
    public function resetaMeta($cod_equipe){
        $post['venda_integrante_meta'] = 0;
        return $this->editar($cod_equipe, $post, 'venda_equipe_cod');
    }
}
?>